<?php
/**
 * EZ
 * Copyright (c) 2017 http://www.lienze.com All rights reserved.
 * author: EZ <123400558@qq.com>
 * Date: 2017/5/19  Time: 11:19
 */

namespace Admin\Controller;


class DisciplineController extends CommonController
{
    /**
     * 掌上党校-党章党纪资料页面
     */
    public function index()
    {
        $ranSum  = rand(1,100);
        $this->assign('index',$ranSum);
        $this->display();
    }

    /**
     * 掌上党校-党章党纪文件页面
     */
    public function fileIndex()
    {
        $this->display();
    }

    /**
     * 掌上党校-党章党纪文件上传
     */
    public function fileUpload()
    {
        // 实例化党章党纪Model类
        $model = D('Discipline');
        $bool = $model->upLoad();
        if ($bool) {
            $message = array(
                'title' => '操作成功!',
                'intro' => '文件已经成功上传！'
            );
            $statu = 'success';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );

        } else {
            $message = array(
                'title' => '操作失败!',
                'intro' => '请检查您的数据是否合法或数据是否已经有上传！'
            );
            $statu = 'error';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );
        }
        $this->ajaxReturn($array);
    }

    /**
     * 获取掌上党校-党章党纪列表
     */
    public function getList()
    {
        $sortField = I('get.sidx');    // 排序字段
        $sortType  = I('get.sord');    // 排序方式
        $rows      = I('get.rows');    // 显示行数
        $page      = I('get.page');    // 显示页数
        $filters   = json_decode($_GET['filters']); // 查询条件

        // 初始化条件变量
        $where = null;
        // 拼装条件数组
        foreach ($filters->rules as $k => $v) {
            // 转换条件符号
            switch ($v->op) {
                case 'cn':
                    $v->op = 'LIKE';
                    $v->data = "%{$v->data}%";
                    break;
                case 'le':
                    $v->op = 'ELT';
                    break;
                case 'ge':
                    $v->op = 'EGT';
                    break;
            }

            // 判断是否存在字段
            if (array_key_exists($v->field, $where)) {
                // 初始化临时条件变量数组
                $whereInfo = array();
                // 获取条件并拼装
                $whereInfo[] = array($where[$v->field][0], $where[$v->field][1]);
                // 获取条件并拼装
                $whereInfo[] = array($v->op, $v->data);
                // 获取条件并拼装
                $whereInfo[] = $filters->groupOp;
                // 判断是否为时间字段并转换成时间戳
                if ($v->field == 'time') {
                    foreach ($whereInfo as $wherek => $wherev) {
                        if(is_array($wherev)) {
                            $whereInfo[$wherek][1] = strtotime($wherev[1]);
                        }
                    }

                }
                // 装载查询条件
                $where[$v->field] = $whereInfo;
            } else {
                // 单条件时判断是否为时间字段并转换成时间戳
                if($v->field == 'time') {
                    $v->data = strtotime($v->data);
                }
                // 装载查询条件
                $where[$v->field] = array($v->op, $v->data);
            }
        }
        // 限制最大行数
        if ($rows > 30) {
            $rows = 30;
        }
        // 实例化党章党纪Model类
        $model = D('Discipline');
        // 获取党章党纪文章列表数量
        $sum   = $model->getListSum('id', $where);
        // 计算变量最大页数
        $maxPage = ceil($sum/$rows);
        // 最大页数限制
        if ($page > $maxPage) {
            $page = $maxPage;
        }
        //

        // 数据查询
        $listData  = $model->getInfo('*', $where, ($page-1)*$rows, $rows, $sortField, $sortType);
        // 初始化数据变量及装载数据
        $data = array();
        $data['page'] = $page;
        $data['total'] = $maxPage;
        $data['records'] = $rows;
//        // 转换日期 (前端转换时间戳，前端转就打开注释)
//        foreach($listData as $k => $v) {
//            $listData[$k]['time'] = date('Y-m-d h:i:s',$v['time']);
//        }
        $data['list'] = $listData;
        // 数据返回
        $this->ajaxReturn($data);
    }

    /**
     * 获取掌上党校-党章党纪列表
     */
    public function getFileList()
    {
        $sortField = I('get.sidx');    // 排序字段
        $sortType  = I('get.sord');    // 排序方式
        $rows      = I('get.rows');    // 显示行数
        $page      = I('get.page');    // 显示页数
        $filters   = json_decode($_GET['filters']); // 查询条件

        // 初始化条件变量
        $where = null;
        // 拼装条件数组
        foreach ($filters->rules as $k => $v) {
            // 转换条件符号
            switch ($v->op) {
                case 'cn':
                    $v->op = 'LIKE';
                    $v->data = "%{$v->data}%";
                    break;
                case 'le':
                    $v->op = 'ELT';
                    break;
                case 'ge':
                    $v->op = 'EGT';
                    break;
            }

            // 判断是否存在字段
            if (array_key_exists($v->field, $where)) {
                // 初始化临时条件变量数组
                $whereInfo = array();
                // 获取条件并拼装
                $whereInfo[] = array($where[$v->field][0], $where[$v->field][1]);
                // 获取条件并拼装
                $whereInfo[] = array($v->op, $v->data);
                // 获取条件并拼装
                $whereInfo[] = $filters->groupOp;
                // 判断是否为时间字段并转换成时间戳
                if ($v->field == 'time') {
                    foreach ($whereInfo as $wherek => $wherev) {
                        if(is_array($wherev)) {
                            $whereInfo[$wherek][1] = strtotime($wherev[1]);
                        }
                    }

                }
                // 装载查询条件
                $where[$v->field] = $whereInfo;
            } else {
                // 单条件时判断是否为时间字段并转换成时间戳
                if($v->field == 'time') {
                    $v->data = strtotime($v->data);
                }
                // 装载查询条件
                $where[$v->field] = array($v->op, $v->data);
            }
        }
        // 限制最大行数
        if ($rows > 30) {
            $rows = 30;
        }
        // 实例化党章党纪Model类
        $model = D('Discipline');
        // 获取党章党纪文章列表数量
        $sum   = $model->getFileListSum('id', $where);
        // 计算变量最大页数
        $maxPage = ceil($sum/$rows);
        // 最大页数限制
        if ($page > $maxPage) {
            $page = $maxPage;
        }
        //

        // 数据查询
        $listData  = $model->getFile('*', $where, ($page-1)*$rows, $rows, $sortField, $sortType);
        // 初始化数据变量及装载数据
        $data = array();
        $data['page'] = $page;
        $data['total'] = $maxPage;
        $data['records'] = $rows;
//        // 转换日期 (前端转换时间戳，前端转就打开注释)
//        foreach($listData as $k => $v) {
//            $listData[$k]['time'] = date('Y-m-d h:i:s',$v['time']);
//        }
        $data['list'] = $listData;
        // 数据返回
        $this->ajaxReturn($data);
    }

    /**
     * 修改掌上党校-党章党纪数据
     */
    public function edit()
    {
        // 实例化党章党纪Model类
        $model = D('Discipline');
        $data  = I('post.');
        $bool = $model->edit($data);

        if ($bool) {
            $message = array(
                'title' => '操作成功!',
                'intro' => '您的信息已经修改成功！'
            );
            $statu = 'success';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );

        } else {
            $message = array(
                'title' => '操作失败!',
                'intro' => '请检查您的数据是否合法或数据是否已经有修改！'
            );
            $statu = 'error';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );
        }
        $this->ajaxReturn($array);

    }

    /**
     * 增加掌上党校-党章党纪数据
     */
    public function create()
    {
        // 实例化党章党纪Model类
        $model = D('Discipline');
        $data  = I('post.');
        $bool = $model->create($data);

        if ($bool) {
            $message = array(
                'title' => '操作成功!',
                'intro' => '您的信息已经增加成功！'
            );
            $statu = 'success';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );

        } else {
            $message = array(
                'title' => '操作失败!',
                'intro' => '请检查您的数据是否合法或数据是否已经有增加！'
            );
            $statu = 'error';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );
        }
        $this->ajaxReturn($array);
    }

    /**
     * 删除掌上党校-党章党纪数据
     */
    public function delete()
    {
        // 实例化党章党纪Model类
        $model = D('Discipline');
        $data  = I('post.');
        $bool = $model->delete($data);

        if ($bool) {
            $message = array(
                'title' => '操作成功!',
                'intro' => '您的信息已经删除成功！'
            );
            $statu = 'success';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );

        } else {
            $message = array(
                'title' => '操作失败!',
                'intro' => '请检查您的数据是否合法或数据是否已经有删除！'
            );
            $statu = 'error';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );
        }
        $this->ajaxReturn($array);
    }

    /**
     * 删除掌上党校-党章党纪数据
     */
    public function fileDelete()
    {
        // 实例化党章党纪Model类
        $model = D('Discipline');
        $data  = I('post.');
        $bool = $model->fileDelete($data);

        if ($bool) {
            $message = array(
                'title' => '操作成功!',
                'intro' => '您的信息已经删除成功！'
            );
            $statu = 'success';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );

        } else {
            $message = array(
                'title' => '操作失败!',
                'intro' => '请检查您的数据是否合法或数据是否已经有删除！'
            );
            $statu = 'error';
            $array = array(
                'status'  => $statu,
                'message' => $message
            );
        }
        $this->ajaxReturn($array);
    }

    /**
     * 增加测试数据
     */
    public function addData()
    {
        $model = A('CreationData');
        $model->table = 'hd_Discipline';

        $data['title'] = '测试标题';
        $data['time'] = time();
        $data['content'] = '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容';
        $data['browse'] = mt_rand(5, 66);
        $data['praise'] = mt_rand(5, 66);
        $model->data = $data;
        $model->creation(50);
    }

}